package org.dromara.yuanshidian.domain.bo;

import org.dromara.yuanshidian.domain.Ab04;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 原人员账户明细(缴费明细)业务对象 ab04
 *
 * @author TzhongTop
 * @date 2025-01-24
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Ab04.class, reverseConvertGenerate = false)
public class Ab04Bo extends BaseEntity {

    /**
     * 主键ID
     */
    //@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 统筹区编码
     */
    //@NotBlank(message = "统筹区编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String aaa027;

    /**
     * 单位编码
     */
   // @NotBlank(message = "单位编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dw01;

    /**
     * 单位名称
     */
    //@NotBlank(message = "单位名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dw02;

    /**
     * 个人帐号
     */
    //@NotBlank(message = "个人帐号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gr03;

    /**
     * 姓名
     */
    //@NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gr04;

    /**
     * 身份证号码
     */
    //@NotBlank(message = "身份证号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gr02;

    /**
     * 状态，1=在职,2=转入
     */
    //@NotBlank(message = "状态，1：已缴不能为空", groups = { AddGroup.class, EditGroup.class })
    private String grmx01;

    /**
     * 缴费月度
     */
    //@NotBlank(message = "缴费月度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String grmx02;

    /**
     * 缴费时间
     */
    //@NotNull(message = "缴费时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date grmx03;

    /**
     * 上年工资
     */
    //@NotNull(message = "上年工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gr18;

    /**
     * 个人缴费基数
     */
    //@NotNull(message = "个人缴费基数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long gr19;

    /**
     * 个人缴费额
     */
    //@NotNull(message = "个人缴费额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal  gr20;

    /**
     * 单位划转额
     */
    //@NotNull(message = "单位划转额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal  grmx04;

    /**
     * 单位代缴额
     */
    //@NotNull(message = "单位代缴额不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal  grmx05;

    /**
     *
     */
    //@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String grmx06;

    /**
     * 单位平均工资
     */
    //@NotNull(message = "单位平均工资不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dw14;

    /**
     * 单位缴费比例
     */
    //@NotNull(message = "单位缴费比例不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long cs03;

    /**
     * 单位基数算法
     */
    //@NotBlank(message = "单位基数算法不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dw68;

    /**
     * 操作员代码
     */
    //@NotBlank(message = "操作员代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dw24;

    /**
     * 系统时间
     */
   // @NotNull(message = "系统时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date systime;

    /**
     * 计息年度
     */
    //@NotBlank(message = "计息年度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String grjx01;

    /**
     *
     */
    //@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tz01;

    /**
     *
     */
    //@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dh;

    /**
     *
     */
    //@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String dw91;

    /**
     * 数据状态:1待提交2审核中3已审核4驳回
     */
    //@NotNull(message = "数据状态:1待提交2审核中3已审核4驳回不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long status;

    /**
     * 删除状态:0未删除，1已删除
     */
    //@NotNull(message = "删除状态:0未删除，1已删除不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long delStatus;

    /**
     * 算法状态：0未计算1已计算
     */
    //@NotNull(message = "算法状态：0未计算1已计算不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long dataFlag;

    /**
     * 退费状态：0未退费，1已退费
     */
    //@NotNull(message = "退费状态：0未退费，1已退费不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long refStatus;

    /**
     * 文件地址
     */
    //@NotBlank(message = "文件地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fileurl;

    /**
     * 缴费开始时间
     */
    //@NotNull(message = "缴费开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jfStarttime;

    /**
     * 缴费截止时间
     */
    //@NotNull(message = "缴费截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jfEndtime;

    /**
     * 个人编号
     */
    //@NotBlank(message = "个人编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gr01;

    /**
     * 结算开始月份
     */
    //@NotNull(message = "结算开始月份不能为空", groups = { AddGroup.class, EditGroup.class })
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    private String jsStartmonth;

    /**
     * 结算截至月份
     */
    //@NotNull(message = "结算截至月份不能为空", groups = { AddGroup.class, EditGroup.class })
    //@DateTimeFormat(pattern = "yyyy-MM-dd")
    private String jsEndmonth;

    /**
     * 缴费月数
     */
    //@NotNull(message = "缴费月数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long jfPaymentmonths;

    /**
     * 个人缴费本息
     */
    //@NotNull(message = "个人缴费本息不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal grjfbx;

    /**
     * 个人账户本息
     */
    ///@NotNull(message = "个人账户本息不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal grzhbx;

    /**
     * 缴费时身份编制
     */
    //@NotBlank(message = "缴费时身份编制不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jfssfbz;

    /**
     *
     */
    //@NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long aaz223;


    /**
     * 导出选中列表ID
     */
    private String splitID;

    private Integer calculationType;


}
